查看原文
其他

Mirai僵尸网络变种“Aquabot“分析

安天CERT 安天集团
2024-10-05
点击上方"蓝字"关注我们吧!


01概述

近期,安天CERT捕获到一个Mirai僵尸网络新变种,针对MIPS、ARM和X86等多种架构,利用弱口令感染目标,并等待控制指令进行DDoS攻击。由于该僵尸网络文件名以“Aqua*”命名,我们将其命名为Aquabot。

经分析,Aquabot僵尸网络至少迭代过2个版本。其中v1以Mirai开源框架为基础开发,主要功能为进程管理、弱口令扫描和DDoS攻击。2023年11月捕获的最新v2样本在v1基础上针对进程管理、隐匿和传播等功能进行迭代,同时增加了检测设备进程启动参数,以防止设备重启、关机和断电从而延长其生存时间的功能。

经验证,安天探海威胁检测系统(简称PTD)能够实现对该僵尸网络C2通信的精准检测。


02安全建议

着安全威胁泛化,物联网僵尸网络得到了快速发展,Aquabot僵尸网络基于Mirai开源框架、模块复用和定制化开发完成了多次迭代。由于IoT设备型号各异、存储空间局限、自身安全防护能力有限,难以“外挂”第三方安全产品,并且需要保持长期联网在线运行,对此,安天建议:

1. 加强关口前移,融合原生安全能力

建议IoT设备生产方在规划、研发、生产制造阶段融入安全基因,预先嵌入安天智能安全内核和威胁检测引擎,面向能源、交通、制造等智能场景,形成出厂即具备原生威胁检测和高水平的初始安全基线,持续保障用户的业务安全、稳定运行,进一步提升品牌竞争力和影响力。

2. 强化网络威胁监测与响应

建议IT运营者部署网络威胁检测与响应系统(NTA或NDR)可以结合Aquabot僵尸网络相关信标进行告警。安天探海威胁检测系统集成了恶意代码检测引擎、网络行为检测引擎、威胁情报检测引擎、威胁检测模型、自定义场景检测引擎等,可有效检测网络扫描探测、远程漏洞利用、攻击载荷投放、僵尸网络活动、病毒扩散传播、木马远程控制、web 攻击等行为。

2-1使用威情报库检出威胁行为

图2-2 使用网络行为特征检出威胁行为

图2-3 使用模型检出僵尸网络漏洞扫描行为、弱密码破解用户口令行为

3. 加强IoT设备访问控制和运维

建议IT运营者保持系统和固件均升级为最新版本、优化默认安全配置策略、设置合理的访问控制策略、完善远程运维连接的管控和审计等。

建议IT运营者修改设备出厂默认口令并设置安全口令,建议使用16位或更长的密码,包括大小写字母、数字和符号在内的组合,同时保证不同型号的设备使用不同的安全口令,并定期更换口令,避免长时间使用同一口令。

4. 遭受攻击及时应急处置

若出现网络异常堵塞或其它情况,联系安天应急响应团队(CERT@antiy.cn处置威胁,或拨打安天7*24小时服务热线400-840-9234寻求帮助。若遭受攻击,建议及时隔离被攻击IoT设备或主机,并保护现场等待安全工程师对IoT设备和计算机进行排查。


03样本分析
本文选取Aquabot X86架构的样本为主要分析对象。Aquabot-v1主体上沿用了Mirai僵尸网络结构框架,主要功能分为初始化、进程管理、弱口令扫描和命令控制四部分。

表3-1 Aquabot-v1样本标签

病毒名称

Trojan/Linux.Mirai.asx

原始文件名

x86

MD5

14C46C7F8F8185793BEF4F919C24DC05

文件大小

41.55 KB (42544 bytes)

文件格式

ELF

VT首次上传时间

2023-09-16 18:32

VT检测结果

42/63


3.1 初始化


样本运行后修改进程名为“configd”,并在控制台上输出内容“silly man infected”。

图3-1 修改进程名并在控制台输出内容


通过检测watchdog传统路径,阻止其对设备进行重启和关机等操作。

图3-2 检测watchdog路径

采用异或算法解密运行所需字符串,算法和密钥数组如下图所示。

图3-3 加密算法及密钥

3.2 进程管理


通过复用Mirai源码中“killer_kill_by_port”函数,实现对受感染设备的进程管理。扫描“/proc/net/tcp”文件过滤特定端口,关闭对应进程,并通过“bind”占用端口。过滤端口如下。

表3-2 过滤端口列表

序号

过滤端口号

端口用途

1

23

23端口是Telnet的端口。Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。

2

80

80端口是为HTTP(HyperText Transport Protocol)即超文本传输协议开放的,主要用于WWW(World Wide Web)万维网传输信息的协议。

3

81

Web服务器的替代端口。

4

88

88端口是针对Kerberos身份验证系统而开放的。Kerberos是一种安全的身份验证系统,可确保计算机系统中的用户和应用程序可以安全访问网络上的资源。

5

10023

无默认服务。

6

39148

无默认服务。

7

60568

无默认服务。

8

39200

无默认服务。


样本利用“readdir”函数遍历并对比“/proc”下进程名,通过“/proc/pid/cmdline”获取进程文件描述符并逐字节比对,当进程名满足“由数字、大小写字母组成,长度≥6,数字的数量≥2”时对比成功,结束相关进程。在Mirai源码中此功能是用于结束其他僵尸网络进程。

图3-4 查杀进程

3.3 弱口令扫描


样本通过生成随机的TCP源端口、配置IPv4头和配置TCP头,初始化弱口令扫描模块。

图3-5 配置网络信息

而后通过如下算法生成随机IP地址,随机选择弱口令字典中的用户名密码组合,对该IP地址进行Telnet登录测试。

图3-6 生成随机IP并尝试登陆

弱口令字典数量为46组,使用异或0x22加密存储,解密后的弱口令字典如下图所示。

图3-7 弱口令字典

当登录成功时,将IP地址、用户名和密码等信息上报C2服务器。

图3-8 上报登陆成功的扫描结果

3.4 命令控制


若攻击者下发了DDoS攻击指令,则会对指定目标发起DDoS攻击。

图3-9 DDoS攻击

样本共集成udp、tcp、gre和app等类型的DDoS攻击,部分类型功能情况如下。

表3-3 DDoS攻击类型

序号

攻击方法名称

功能

1

udp_generic

向目标系统发送大量的UDP数据包来超载其网络资源。

2

udp_vse

查询洪水攻击,通过发送大量查询请求来超载服务器资源。

3

tcp_syn

半开连接攻击,耗尽服务器资源。

4

tcp_ack

在tcp连接建立之后,发送带有ack标志位的数据包。

5

tcp_stomp

ack flood 攻击变体。

6

gre_ip

修改的greeth  flood。

7

gre_eth

基于GRE协议的洪水攻击。

8

udp_plain

udp flood攻击变体。

9

app_http

向目标服务器发送大量的HTTP请求,消耗服务器资源。



04样本迭代对比
经分析,Aquabot僵尸网络至少迭代过2个版本。v2在v1基础上改动,2023年11月份捕获的最新v2样本主要针对传播、隐匿、持久化和进程管理等功能进行迭代。

表4-1 Aquabot-v2样本标签

病毒名称

Trojan/Linux.Mirai.asx

原始文件名

Aqua.x86

MD5

8aea7da471d61d2aaa8fb81172f85fdb

文件大小

61.30 KB (62772 bytes)

文件格式

ELF

VT首次上传时间

2023-11-08 06:57

VT检测结果

38/63


v2版本使用硬编码域名作为上线地址,根据域名创建时间推测,最初迭代时间为2023年9月25日。

图4-1 v2迭代时间

迭代内容主要为:

(1)传播能力:v2版本移除弱口令扫描功能。

(2)隐匿能力:v2版本会修改进程名为“httpd”,增加删除“/proc/self”文件实现隐匿进程的功能。

图4-2 进程隐匿对比


(3)持久化能力:v2版本移除了安全狗重启检测功能;增加检测进程启动参数,阻止对设备进行重启、关机和断电等操作。

图4-3 持久化实现方式对比


(4)进程管理能力:v2版本移除通过“/proc/net/tcp”过滤特定端口关闭进程功能;增加通过“/proc/%d/maps”“/proc/%d/exe”“/proc/%d/stat”“/proc/%d/cmdline”等方式过滤并关闭“/tmp”“/var/run”“/mnt”“/root”目录下,进程符号链接中不包含“sh”“ps”的进程。

图4-4 进程管理对比


Aquabot僵尸网络迭代对比如下。

表4-2 Aquabot僵尸网络迭代对比

Aquabot-v1  X86

Aquabot-v2  X86

进程隐匿

修改进程名为“configd”。

修改进程名为“httpd”、删除“self”文件。

控制台输出

“silly man  infected”

“about to  cum inside a femboy btw”

反调试

反GDB调试。

反GDB调试。

解密算法

^=(异或)。

^=(异或)。

密钥

上线

复用mirai上线代码,使用IP作为上线地址。

复用mirai上线代码,优先使用域名作为上线地址。

持久化

检测watchdog传统路径,阻止其对设备进行重启和关机等操作。

检测进程启动参数,阻止其对设备进行重启、关机和断电等操作。

命令与控制

共集成udp、tcp、gre和app等类型的DDoS攻击。

共集成udp、tcp、gre和app等类型的DDoS攻击。

进程管理

通过“/proc/net/tcp”过滤39148、10023、23、81、80、88、60568、39200端口的方式关闭进程并通过“bind”占用端口。

通过“/proc/pid/cmdline”获取进程文件描述符并逐字节比对,当满足“由数字和大小写字母组成、长度6、数字的数量2”时,关闭该进程。在Mirai源码中此功能是用于结束其他僵尸网络进程。

通过“/proc/%d/maps”“/proc/%d/exe”“/proc/%d/stat”“/proc/%d/cmdline”等方式过滤并关闭“/tmp”“/var/run”“/mnt”“/root”目录下,进程符号链接中不包含“sh”“ps”的进程。

弱口令扫描

配置网络信息使用弱口令字典扫描随机IP地址(弱口令字典使用异或0x22加密存储),当弱口令登陆成功则将IP地址、用户名和密码等信息上报C2服务器。

移除该模块。



05样本对应的ATT&CK映射图谱

Aquabot僵尸网络X86架构样本行为技术点的ATT&CK框架图谱如下所示:

图5-1 技术特点对应ATT&CK的映射

Aquabot僵尸网络X86架构样本涉及ATT&CK框架中9个阶段的11个技术点,具体ATT&CK技术行为描述表:

表5-1 ATT&CK技术行为描述表

ATT&CK阶段/类别

具体行为

注释

侦察

主动扫描

生成随机IP地址,并对该IP地址实施扫描。

资源开发

获取基础设施

使用弱口令漏洞获取基础设施,构建僵尸网络。

初始访问

利用有效账户

使用弱口令字典对随机IP地址的设备尝试登陆,成功则上报IP地址、用户名和密码等信息,用于投递后续载荷。

持久化

电源设置

检测安全狗或进程启动参数,阻止其对设备进行重启、关机和断电等操作。

防御规避

混淆文件或信息

采用异或算法解密运行所需字符串和弱口令字典。

隐藏行为

修改进程名,删除“self”文件隐匿进程。

凭证访问

暴力破解

使用弱口令字典尝试登陆。

发现

发现进程

过滤并关闭特定端口的进程、过滤并关闭特定目录下特定进程。

发现远程系统

以发现远程基础设施为目标,对随机IP地址扫描。

命令与控制

使用应用层协议

使用web协议传输远控指令。

影响

网络侧拒绝服务

发起udp_generic、tcp_syn和udp_vse等DDoS攻击。


06IoCs

IoCs

5E4539E71DB8A8D5AAB7B417B12C3A11

EDA6C9945F449A1FFE07A09096FAC532

DBB63B126B96D69B4E974B0C4D8ABF19

C4973FD941C001EFCE069EA8952A9C42

A4F59DA4725333E671B7257F8C7D5146

A06B5BE74AF6D4A8BB534DCE0E4D8960

8FFD26C19F4890863D0F969D04F38F5B

8AEA7DA471D61D2AAA8FB81172F85FDB

6FCF2A40B1463B118E38F0802B54E003

6C9B401F6FB9D1D3BD4DCFD93B45F0F8

61DE0F87AEEE052D05C74024C974F393

5F47FB7E60D05ED2A90319F21742E4E4

5F1C6B75883C1315FD8ADF0A1B90F1D8

412CA37E49E4477F45BFB5E45268B862

1C2940D4F116A329147FC80C590B8817

14C46C7F8F8185793BEF4F919C24DC05

Boats.dogmuncher.xyz

89.190.156.145

往期回顾

继续滑动看下一个
安天集团
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存